package com.xz.xzutils.settings.mybatislogplus;

import com.xz.xzutils.settings.mybatislogplus.constant.FormatterEnum;
import com.xz.xzutils.settings.mybatislogplus.constant.SqlPrintStyleEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * @author DONG.WANG17@HAND-CHINA.COM
 * @since 2025/3/2-03-02 22:59
 */
@Data
@EqualsAndHashCode
public class MybatisLogPlusState {
    // 格式化程序
    private FormatterEnum formatter;
    // SQL打印样式
    private SqlPrintStyleEnum sqlPrintStyle;
    // 缩进数量
    private Integer indentNum;
    // 是否保存日志到文件
    private Boolean saveLogToFile;
    // 日志文件路径
    private String logFilePath;
    // 端口范围
    private Integer minPort;
    // 端口范围
    private Integer maxPort;

    /*
     * 请注意，state 类必须具有 default 构造函数。它应该返回组件的默认状态：
     * 如果 XML 文件中还没有保留任何内容，则使用该状态。
     * */
    public MybatisLogPlusState() {
        this.formatter = FormatterEnum.SqlFormatter;
        this.sqlPrintStyle = SqlPrintStyleEnum.COMPRESSED;
        this.indentNum = 4;
        this.saveLogToFile = false;
        this.logFilePath = System.getProperty("java.io.tmpdir") + "/mybatis_sql.log";
        this.minPort = 55000;
        this.maxPort = 55555;
    }
}
